#pragma once
#include "XStormBase.h"

namespace Xts
{
	namespace IceRuntime 
	{
		class XIntermediarySubscriber : public XStormBase, public IceUtil::Shared
		{
		public:
			XIntermediarySubscriber(const Ice::CommunicatorPtr& pIc, const Ice::LoggerPtr& pLogger);
			virtual ~XIntermediarySubscriber(void);

			bool Subscribe(const std::string& topicName, const std::string& monitorDsb);
			bool Unsubscribe(const std::string& topicName, const std::string& monitorDsb);
			bool RetrievePublishPrx(const ::std::string& topicName, ::Ice::ObjectPrx& publisherPrx);

		};
		typedef IceUtil::Handle<XIntermediarySubscriber> XIntermediarySubscriberPtr;
	}
}